package com.shujia.io_.one;

import org.junit.Test;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

public class FileExer {

    // 遍历指定目录所有文件名称，包括子文件目录中的文件。
    @Test
    public void test5() throws IOException {
        File file = new File("D:\\软件");

        printFileName(file);

    }

    private void printFileName(File file) {

        if (file.isFile()) {
            System.out.println("请传递文件夹");
            return;
        }

        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isDirectory()) {
                printFileName(f);
            } else {
                System.out.println(f.getAbsolutePath());
            }
        }

    }


    @Test
    public void test4() throws IOException {
        //  判断指定目录下是否有后缀名为.jpg的文件，如果有，就输出该文件名称。
        File file = new File("file");
        File[] files = file.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.contains(".jpg");
            }
        });
        for (File f : files) {
            if (f.isFile()) {
                String fileName = f.getName();
                String subStr = fileName.substring(fileName.lastIndexOf("."));

                if (subStr.equals(".jpg")) {
                    System.out.println(fileName);
                }
            }
        }

    }

    @Test
    public void test3() throws IOException {
        //  判断指定目录下是否有后缀名为.jpg的文件，如果有，就输出该文件名称。
        File file = new File("file");
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isFile()) {
                String fileName = f.getName();
                String subStr = fileName.substring(fileName.lastIndexOf("."));

                if (subStr.equals(".jpg")) {
                    System.out.println(fileName);
                }
            }
        }

    }

    @Test
    public void test2() throws IOException {
//        public boolean delete ()：删除文件或者文件夹
        File file = new File("file\\img");
        file.delete();


//        void deleteOnExit ()：当文件存在时，删除文件
        file = new File("file\\img\\b.jpg");
        file.deleteOnExit();
    }


    @Test
    public void test1() throws IOException {
        // 已知一个文件对应的File对象，在这个File所在的目录创建文件或文件夹
        File file = new File("file\\a.txt");

        // 创建文件夹
        File dir = new File(file.getParent(), "img\\jpg");
        // 如果没有上级目录, 创建失败
//        dir.mkdir();
        dir.mkdirs();

        // 创建文件
        File saveFile = new File(dir.getPath(), "b.jpg");
        saveFile.createNewFile();


    }
}
